#!/usr/bin/env bash

set -e

# for branch coverage support, which is unstable
export RUSTC_BOOTSTRAP=1
OPTIONS=--branch

source <(cargo llvm-cov show-env --export-prefix $OPTIONS "$@")
cargo llvm-cov clean --workspace

cargo build --locked --all-targets --all-features
cargo test --locked --all-features
cargo test -p rustls --locked --no-default-features --features log,aws-lc-rs,fips,std
cargo test -p rustls-ring --locked

# ensure both zlib and brotli are tested, irrespective of their order
cargo test --locked $(admin/all-features-except zlib rustls)
cargo test --locked $(admin/all-features-except brotli rustls)

## bogo
cargo test --locked --test bogo -- --ignored --test-threads 1

cargo llvm-cov report --ignore-filename-regex "(bogo|rustls-test)/" $OPTIONS "$@"
